Synapse a RAW socket

Otázka od: Jakub Cermak

16. 11. 2004 22:09

Zkousel jsem tridu TRawSocket ze Synapse, povedlo se mi odeslat data,
nicmene stale mi pred vlastni data Windows (zkousel jsem to i pres API,
takze to vypada na ne) cpe IP hlavicku, kterou tam ale nechci. Pochopil sem
dobre RAW sockety kdyz jsem si myslel ze to co odeslu se dostane na sit v
presne podobe JEN s pridanou Ethernet hlavickou (tedy zadna IP ani nic
podobneho)?
Priklad kodu:
synapse:=TRAWBlockSocket.Create;
  synapse.CreateSocket;
  synapse.Connect('10.0.0.10','99');
  synapse.SendBuffer(buf,buflen);
  writeln('Potencialni chyba:',synapse.LastErrorDesc);
  writeln('Potencialni chybovy kod:',synapse.LastError);
  synapse.Free;

Doufam ze jsem se jasne vymackl.

Jakub Cermak
ja.cermi@centrum.cz
ICQ 159971304


Odpovedá: Lukas Gebauer

17. 11. 2004 11:18

> Zkousel jsem tridu TRawSocket ze Synapse, povedlo se mi odeslat data,
> nicmene stale mi pred vlastni data Windows (zkousel jsem to i pres API,
> takze to vypada na ne) cpe IP hlavicku, kterou tam ale nechci. Pochopil sem
> dobre RAW sockety kdyz jsem si myslel ze to co odeslu se dostane na sit v
> presne podobe JEN s pridanou Ethernet hlavickou (tedy zadna IP ani nic
> podobneho)?

No, standardne tam system sam cpe jeste IP hlavicku, takze sice muzes
simulovat jine IP protokoly (ci si vymyslet vlastni), ale adresy
osedilatelu a prijemcu modifikovat nemuzes.

V nekterych operacnich systemech muzes pres SetSockOpt to pridavani IP
hlavicek vypnout. To jde treba na Linuxu, ale na windows to pokud vim
vubec nejde. (alespon na starsich Windows to urcite nejde... jestli to
nahodou na nejakych W2k3 uz jde, to fakt netusim.)

Ono je to na druhou stranu dobre, protoze az by ty tuny cerviku, ktere
ziji z der v Outlooku a IE, zacaly navic spoofovat IP hlavicky, to by byl
 teprve mazec. ;-(
--
Lukas Gebauer.

E-mail: gebauerl@mlp.cz
WEB: http://www.ararat.cz/synapse - Synapse Delphi and Kylix TCP/IP
Library